package com.yf.exam.modules.sys.system.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import com.yf.exam.core.api.ApiRest;
import com.yf.exam.core.api.ResultPage;
import com.yf.exam.core.api.controller.BaseController;
import com.yf.exam.core.utils.DateUtils;
import com.yf.exam.modules.sys.system.entity.SysLog;
import com.yf.exam.modules.sys.system.mapper.SysLogMapper;
import com.yf.exam.modules.sys.system.service.SysLogService;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务实现类
 * </p>
 *
 * @author 肖守凯
 * @since 2020-12-21
 */
@Service
public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> implements SysLogService {


    /**
     * 添加SysLog
     *
     * @param sysLog 前端传进的参数
     * @return 返回统一信息
     */
    @Override
    public boolean addSysLog(SysLog sysLog) {
        return this.save(sysLog);
    }

    /**
     * 编辑跳转页面的回显数据SysLog
     *
     * @param id 前端传进的参数
     * @return 返回实体类
     */
    @Override
    public SysLog selectSysLogByIdSysLog(Integer id) {
        return this.getById(id);
    }


    /**
     * 编辑SysLog
     *
     * @param sysLog 前端传进的参数
     * @return 返回统一信息
     */
    @Override
    public boolean editSysLog(SysLog sysLog) {
        return this.updateById(sysLog);

    }

    /**
     * 删除一条SysLog
     *
     * @param id 前端传进的ID
     * @return 返回统一信息
     */
    @Override
    public boolean delSysLog(Integer id) {
        return this.removeById(id);

    }

    /**
     * 分页查询SysLog
     *
     * @param page   页码
     * @param limit  查几条
     * @param sysLog 前端传进的参数
     * @return 返回统一分页信息
     */
    @Override
    public ResultPage<SysLog> findSysLogByPage(Integer page, Integer limit, SysLog sysLog,String startTime,String endTime) {

        System.out.println("page:"+page);
        System.out.println("limit:"+limit);

        Map<String, Object> paramMap = new HashMap<>();
        paramMap.put("page", (page - 1) * limit);
        paramMap.put("limit", limit);
        paramMap.put("sysLog", sysLog);
        paramMap.put("startTime", startTime);
        paramMap.put("endTime", endTime);



        List<SysLog> list = baseMapper.selectMyPage(paramMap);

        Integer count = baseMapper.countMyPage(paramMap);


        /**
         * 将时间戳转换字符
         */
        for (int i = 0; i < list.size(); i++) {

            list.get(i).setCreateTim(DateUtils.stampToDate(Long.parseLong(list.get(i).getCreateTim())));

        }


        ResultPage<SysLog> resultPage = new ResultPage<>();
        resultPage.setCode(0);
        resultPage.setCount(count);
        resultPage.setMsg("成功");
        resultPage.setData(list);
        return resultPage;
    }


    @Override
    public Integer historicalVisitors() {


        return baseMapper.getHistoricalVisitors();


    }
}
